package com.linsir.utils;

import com.linsir.lin.pojo.MetaField;
import com.linsir.lin.pojo.MetaObject;

import java.util.ArrayList;
import java.util.List;

/**
 * @ProjectName:linsir-lin
 * @Package:com.linsir.utils
 * @Title: SringUtils
 * @Description: TODO
 * @Create:2021/6/13 17:18 by @author:Linsir
 * @Update:2021/6/13 17:18 by @author:Linsir
 * @UpdateRemark: 初始创建
 * @Version 1.0.0
 */
public class StringUtils {

    /**
     * 以逗号隔开的字符串转化成 List ，用于批量处理
     * @param Str
     * @return
     */
    public static List<Integer>  strtOList(String Str)
    {
        String[] Strs = Str.split(",");

        List<Integer>  integerList = new ArrayList<Integer>();

        for(String str :Strs)
        {
            integerList.add(Integer.parseInt(str));
        }
        return integerList;
    }


    /**
     *
     * @param metaObject
     * @return
     */
    public static String objectColLeft(MetaObject metaObject)
    {
        String col="{";
        if (metaObject.isShowNum())
        {
            col=col+"type: 'numbers', title: '序号', width: 180  },";
        }
        //单选
        if (metaObject.isSingle())
        {
            col=col+"type: 'radio', title: '序号', width: 180  },";
        }
        else {
            col=col+"type: 'checkbox', title: '序号', width: 180  },";
        }
        return col;
    }

    /***
     * 这里只装在数据库钟存在的字段，不加载 单选或者多选，或者操作
     * @param metaField
     * @return
     */
    public static String fieldCol(MetaField metaField)
    {

        /*
        * {field:'username', width:100}
        * */
        String  col = "{";
        if (metaField.isMultiple())
        {
            //如果是多选，默认在字段后面加上Name
            col=col+"field:'"+metaField.getEn()+"Name',";
        }
        else
        {
            col=col+"field:'"+metaField.getEn()+"',";
        }
        /*标题*/
        col=col+"title:'"+metaField.getCn()+"',";

        /*宽度*/
        col=col+"width:"+metaField.getWidth()+",";

        /* 最小宽度，不提供该属性 minWidth*/
        /*type 多选框，单选框，直接放在第一列*/
        /*LAY_CHECKED	是否全选状态（默认：false）。必须复选框列开启后才有效，如果设置 true，则表示复选框默认全部选中。*/
        /*fixed 固定列。可选值有：left（固定在左）、right（固定在右）。一旦设定，对应的列将会被固定在左或右，不随滚动条而滚动。
注意：如果是固定在左，该列必须放在表头最前面；如果是固定在右，该列必须放在表头最后面。*/
        /*hide 是否初始隐藏列，默认：false。layui 2.4.0 新增*/
        /*totalRow 在 totalRow 中返回所需统计的列字段名和值即可。*/
        /*sort 排序*/
        col=col+"sort:"+metaField.isOrder()+",";
        /*unresize 是否禁用拖拽列宽（默认：false）。
        默认情况下会根据列类型（type）来决定是否禁用，如复选框列，会自动禁用。而其它普通列，默认允许拖拽列宽，
        当然你也可以设置 true 来禁用该功能。*/
        /*edit 单元格编辑类型（默认不开启）目前只支持：text（输入框）	*/
        /*event 自定义单元格点击事件名，以便在 tool 事件中完成对该单元格的业务处理*/
        /*style 表格样式  自定义单元格样式。即传入 CSS 样式	*/
        /*align 单元格排列方式。可选值有：left（默认）、center（居中）、right（居右）*/
        /*colspan 单元格所占列数（默认：1）。一般用于多级表头	*/
        /*rowspan 	单元格所占行数（默认：1）。一般用于多级表头	*/
        /*templet 自定义列模板，模板遵循 laytpl 语法。这是一个非常实用的功能，你可借助它实现逻辑处理，以及将原始数据转化成其它格式，如时间戳转化为日期字符等*/
        if(metaField.getFormatter()!=null)
        {
            //这里用templet模板ID
            //{field:'title', title: '文章标题', width: 200, templet: '#titleTpl'} //这里的templet值是模板元素的选择器
            col=col+"templet:'"+metaField.getFormatter()+"',";
        }
        /*toolbar  String 绑定工具条模板。可在每行对应的列中出现一些自定义的操作性按钮*/
       /* col=col+"toolbar:'#"+metaField.getObjectCode()+"toolbar'}";*/
        //System.out.println(col);
        col=col.substring(0,col.length()-1)+"},";
        return col;
    }

}
